#ifndef __BSP_DS18B20_H__
#define __BSP_DS18B20_H__

#include "stm32f4xx_conf.h"
#include "sys.h"

#define DS18B20_DQ_PIN GPIO_Pin_9
#define DS18B20_DQ_PORT GPIOB

// 引脚模式切换宏定义
#define DS18B20_MODE_OUT()   PBout(9)
#define DS18B20_MODE_IN()    PBin(9)

// 数据位操作宏定义
#define DS18B20_DQ_HIGH()    GPIO_SetBits(DS18B20_DQ_PORT, DS18B20_DQ_PIN)
#define DS18B20_DQ_LOW()     GPIO_ResetBits(DS18B20_DQ_PORT, DS18B20_DQ_PIN)
#define DS18B20_DQ_READ()    GPIO_ReadInputDataBit(DS18B20_DQ_PORT, DS18B20_DQ_PIN)

#define DS18B20_ERROR 0xff

void bsp_ds18b20_init(void);
float DS18B20_GetTemperature(void);

#endif /* __BSP_DS18B20_H__ */
